package com.twb.core.base.entity;

import java.io.Serializable;
import java.time.LocalDateTime;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.twb.core.util.DateUtil;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * @author DSY
 * @ClassName TwbUser
 * @Description 基础用户信息
 * @date 2018年11月12日 下午5:45:49
 */
@ApiModel(value = "BaseUser", description = "基础用户信息")
public class BaseLoginUser implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * 编号
	 */
	@ApiModelProperty("编号")
	private String id;

	/**
	 * 登陆名称
	 */
	@ApiModelProperty("登陆名称")
	private String loginName;

	/**
	 * 姓名
	 */
	@ApiModelProperty("姓名")
	private String name;

	/**
	 * 用户类型
	 */
	@ApiModelProperty("用户类型")
	private String userType;

	/**
	 * 手机号码
	 */
	@ApiModelProperty("手机号码")
	private String phone;

	/**
	 * 邮箱
	 */
	@ApiModelProperty("邮箱")
	private String mail;

	/**
	 * 用户状态（0，失效；1，生效）
	 */
	@ApiModelProperty("用户状态（0，失效；1，生效）")
	private String status;

	/**
	 * 登陆IP
	 */
	@ApiModelProperty("登陆IP")
	private String ip;

	/**
	 * token令牌
	 */
	@ApiModelProperty("token令牌")
	private String token;

	/**
	 * 是否第一次登录（0，否；1，是）
	 */
	@ApiModelProperty("是否第一次登录（0，否；1，是）")
	private Integer firstLogin;

	/**
	 * 是否为开发者
	 */
	@ApiModelProperty("是否为开发者")
	private boolean isDeveloper;

	/**
	 * 用户所属平台
	 */
	@ApiModelProperty("用户所属平台")
	private String platformId;

	/**
	 * 用户所属租户
	 */
	@ApiModelProperty("用户所属租户")
	private String tenantId;

	/**
	 * 用户所登录系统的orgid 一个用户在一个系统中，应只属于一个组织机构，如果存在多个组织机构，取第一个组织机构
	 */
	@ApiModelProperty("用户所登录系统的orgid（一个用户在一个系统中，应只属于一个组织机构，如果存在多个组织机构，取第一个组织机构）")
	private String orgId;

	/**
	 * 用户所登录系统的orgCode 一个用户在一个系统中，应只属于一个组织机构，如果存在多个组织机构，取第一个组织机构
	 */
	@ApiModelProperty("用户所登录系统的orgCode（一个用户在一个系统中，应只属于一个组织机构，如果存在多个组织机构，取第一个组织机构）")
	private String orgCode;
	/**
	 * 用户所登录系统的orgName 一个用户在一个系统中，应只属于一个组织机构，如果存在多个组织机构，取第一个组织机构
	 */
	@ApiModelProperty("用户所登录系统的orgName（一个用户在一个系统中，应只属于一个组织机构，如果存在多个组织机构，取第一个组织机构）")
	private String orgName;

	/**
	 * 用户所登录系统的公司orgid
	 */
	@ApiModelProperty("用户所登录系统的公司orgid")
	private String companyOrgId;

	/**
	 * 用户所登录系统的公司orgCode
	 */
	@ApiModelProperty("用户所登录系统的公司orgCode")
	private String companyOrgCode;
	/**
	 * 用户所登录系统的公司orgCode
	 */
	@ApiModelProperty("用户所登录系统的公司orgName")
	private String companyOrgName;

	/**
	 * 头像
	 */
	@ApiModelProperty("头像")
	private String photo;

	/**
	 * APP客户端唯一标识
	 */
	@ApiModelProperty("APP客户端唯一标识")
	private String clientId;

	/**
	 * 数据权限类型（1：全部数据；2：本部门及以下数据；3：本部门数据；4：仅本人数据；5：自定义数据）
	 */
	@ApiModelProperty("数据权限类型（1：全部数据；2：本部门及以下数据；3：本部门数据；4：仅本人数据；5：自定义数据）")
	private String dataScopeType;

	/**
	 * 登录时间
	 */
	@ApiModelProperty("登录时间")
	@JsonFormat(pattern = DateUtil.DEFAULT_PATTERN)
	private LocalDateTime loginTime = LocalDateTime.now();

	/**
	 * 直属主管
	 */
	@ApiModelProperty(value = "直属主管")
	private String directSupervisor;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getLoginName() {
		return loginName;
	}

	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getUserType() {
		return userType;
	}

	public void setUserType(String userType) {
		this.userType = userType;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getMail() {
		return mail;
	}

	public void setMail(String mail) {
		this.mail = mail;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public String getIp() {
		return ip;
	}

	public void setIp(String ip) {
		this.ip = ip;
	}

	public String getToken() {
		return token;
	}

	public void setToken(String token) {
		this.token = token;
	}

	public Integer getFirstLogin() {
		return firstLogin;
	}

	public void setFirstLogin(Integer firstLogin) {
		this.firstLogin = firstLogin;
	}

	public boolean isDeveloper() {
		return isDeveloper;
	}

	public void setDeveloper(boolean isDeveloper) {
		this.isDeveloper = isDeveloper;
	}

	public String getPlatformId() {
		return platformId;
	}

	public void setPlatformId(String platformId) {
		this.platformId = platformId;
	}

	public String getTenantId() {
		return tenantId;
	}

	public void setTenantId(String tenantId) {
		this.tenantId = tenantId;
	}

	public String getOrgId() {
		return orgId;
	}

	public void setOrgId(String orgId) {
		this.orgId = orgId;
	}

	public String getPhoto() {
		return photo;
	}

	public void setPhoto(String photo) {
		this.photo = photo;
	}

	public String getClientId() {
		return clientId;
	}

	public void setClientId(String clientId) {
		this.clientId = clientId;
	}

	public String getOrgCode() {
		return orgCode;
	}

	public void setOrgCode(String orgCode) {
		this.orgCode = orgCode;
	}

	public String getDataScopeType() {
		return dataScopeType;
	}

	public void setDataScopeType(String dataScopeType) {
		this.dataScopeType = dataScopeType;
	}

	public LocalDateTime getLoginTime() {
		return loginTime;
	}

	public void setLoginTime(LocalDateTime loginTime) {
		this.loginTime = loginTime;
	}

	public String getDirectSupervisor() {
		return directSupervisor;
	}

	public void setDirectSupervisor(String directSupervisor) {
		this.directSupervisor = directSupervisor;
	}

	public String getCompanyOrgId() {
		return companyOrgId;
	}

	public void setCompanyOrgId(String companyOrgId) {
		this.companyOrgId = companyOrgId;
	}

	public String getCompanyOrgCode() {
		return companyOrgCode;
	}

	public void setCompanyOrgCode(String companyOrgCode) {
		this.companyOrgCode = companyOrgCode;
	}

	public String getOrgName() {
		return orgName;
	}

	public void setOrgName(String orgName) {
		this.orgName = orgName;
	}

	public String getCompanyOrgName() {
		return companyOrgName;
	}

	public void setCompanyOrgName(String companyOrgName) {
		this.companyOrgName = companyOrgName;
	}
}
